package org.bigdata.framework.core.protocol;

import org.bigdata.framework.core.model.Advertisement;
import org.bigdata.framework.core.model.Answer;
import org.bigdata.framework.core.model.Audit;
import org.bigdata.framework.core.model.Browse;
import org.bigdata.framework.core.model.Category;
import org.bigdata.framework.core.model.ClassesOnline;
import org.bigdata.framework.core.model.ClassesOnlineComment;
import org.bigdata.framework.core.model.Collect;
import org.bigdata.framework.core.model.Comment;
import org.bigdata.framework.core.model.Config;
import org.bigdata.framework.core.model.Course;
import org.bigdata.framework.core.model.CourseComment;
import org.bigdata.framework.core.model.CourseQuestion;
import org.bigdata.framework.core.model.Live;
import org.bigdata.framework.core.model.LiveQuestion;
import org.bigdata.framework.core.model.Log;
import org.bigdata.framework.core.model.Member;
import org.bigdata.framework.core.model.Menu;
import org.bigdata.framework.core.model.Message;
import org.bigdata.framework.core.model.Online;
import org.bigdata.framework.core.model.OnlineQuestion;
import org.bigdata.framework.core.model.Order;
import org.bigdata.framework.core.model.Paper;
import org.bigdata.framework.core.model.Permission;
import org.bigdata.framework.core.model.Question;
import org.bigdata.framework.core.model.QuestionDatabase;
import org.bigdata.framework.core.model.Role;
import org.bigdata.framework.core.model.ShortFilm;
import org.bigdata.framework.core.model.ShortFilmComment;
import org.bigdata.framework.core.model.User;
import org.bigdata.framework.core.model.UserRole;

/**
 * 基础接口（写）
 * @author vimes
 *
 */
public interface IBaseService {
	
	/* 用户管理 start */
	User saveUser(User user);
	User editUser(User user);
	void deleteUser(User user);
	/* 用户管理 end */
	
	/* 角色管理 start */
	Role saveRole(Role role);
	Role editRole(Role role);
	void deleteRole(Role role);
	/* 角色管理 end */
	
	/* 菜单管理 start */
	Menu saveMenu(Menu menu);
	Menu editMenu(Menu menu);
	void deleteMenu(Menu menu);
	/* 菜单管理 end */
	
	/* 用户-角色管理 start */
	UserRole saveUserRole(UserRole userRole);
	UserRole editUserRole(UserRole userRole);
	void deleteUserRole(UserRole userRole);
	/* 用户-角色管理 end */
	
	/* 权限管理 start */
	Permission savePermission(Permission permission);
	Permission editPermission(Permission permission);
	void deletePermission(Permission permission);
	/* 权限管理 end */
	
	/* 广告表 start */
	Advertisement saveAdvertisement(Advertisement advertisement);
	Advertisement editAdvertisement(Advertisement advertisement);
	void deleteAdvertisement(Advertisement advertisement);
	/* 广告表 end */
	
	/* 浏览表 start */
	Browse saveBrowse(Browse browse);
	Browse editBrowse(Browse browse);
	void deleteBrowse(Browse browse);
	/* 浏览表 end */

	/* 栏目表 start */
	Category saveCategory(Category category);
	Category editCategory(Category category);
	void deleteCategory(Category category);
	/* 栏目表 end */
	
	/* 网班表 start */
	ClassesOnline saveClassesOnline(ClassesOnline classesOnline);
	ClassesOnline editClassesOnline(ClassesOnline classesOnline);
	void deleteClassesOnline(ClassesOnline classesOnline);
	/* 网班表 end */
	
	/* 网班评价表 start */
	ClassesOnlineComment saveClassesOnlineComment(ClassesOnlineComment classesOnlineComment);
	ClassesOnlineComment editClassesOnlineComment(ClassesOnlineComment classesOnlineComment);
	void deleteClassesOnlineComment(ClassesOnlineComment classesOnlineComment);
	/* 网班评价表 end */
	
	/* 收藏表 start */
	Collect saveCollect(Collect collect);
	Collect editCollect(Collect collect);
	void deleteCollect(Collect collect);
	/* 收藏表end */
	
	/* 意见表 start */
	Comment saveComment(Comment comment);
	Comment editComment(Comment comment);
	void deleteComment(Comment comment);
	/* 意见表end */

	/* 配置表 start */
	Config saveConfig(Config config);
	Config editConfig(Config config);
	void deleteConfig(Config config);
	/* 配置表end */
	
	/* 课程表 start */
	Course saveCourse(Course course);
	Course editCourse(Course course);
	void deleteCourse(Course course);
	/* 课程表 end */
	
	/* 课程-评价表 start */
	CourseComment saveCourseComment(CourseComment courseComment);
	CourseComment editCourseComment(CourseComment courseComment);
	void deleteCourseComment(CourseComment courseComment);
	/* 课程-评价表 end */
	
	/* 课程组卷表 start */
	CourseQuestion saveCourseQuestion(CourseQuestion courseQuestion);
	CourseQuestion editCourseQuestion(CourseQuestion courseQuestion);
	void deleteCourseQuestion(CourseQuestion courseQuestion);
	/* 课程组卷表 end */
	
	/* 直播表 start */
	Live saveLive(Live live);
	Live editLive(Live live);
	void deleteLive(Live live);
	/* 直播表 end */
	
	/* 直播组卷表 start */
	LiveQuestion saveLiveQuestion(LiveQuestion liveQuestion);
	LiveQuestion editLiveQuestion(LiveQuestion liveQuestion);
	void deleteLiveQuestion(LiveQuestion liveQuestion);
	/* 直播组卷表 end */
	
	/* 日志表 start */
	Log saveLog(Log log);
	Log editLog(Log log);
	void deleteLog(Log log);
	void deleteLogAll();
	/* 日志表 end */
	
	/* 前端用户表 start */
	Member saveMember(Member member);
	Member editMember(Member member);
	void deleteMember(Member member);
	/* 前端用户表 end */
	
	/* 消息表 start */
	Message saveMessage(Message message);
	Message editMessage(Message message);
	void deleteMessage(Message message);
	/* 消息表 end */
	
	/* 微课表 start */
	Online saveOnline(Online online);
	Online editOnline(Online online);
	void deleteOnline(Online online);
	/* 微课表 end */
	
	/* 微课组卷表 start */
	OnlineQuestion saveOnlineQuestion(OnlineQuestion onlineQuestion);
	OnlineQuestion editOnlineQuestion(OnlineQuestion onlineQuestion);
	void deleteOnlineQuestion(OnlineQuestion onlineQuestion);
	/* 微课组卷表 end */
	
	/* 订单表start */
	Order saveOrder(Order order);
	Order editOrder(Order order);
	void deleteOrder(Order order);
	/* 订单表 end */
	
	/* 题目表start */
	Question saveQuestion(Question question);
	Question editQuestion(Question question);
	void deleteQuestion(Question question);
	/* 题目表 end */
	
	/* 题库表start */
	QuestionDatabase saveQuestionDatabase(QuestionDatabase questionDatabase);
	QuestionDatabase editQuestionDatabase(QuestionDatabase questionDatabase);
	void deleteQuestionDatabase(QuestionDatabase questionDatabase);
	/* 题库表 end */
	
	/* 短片表start */
	ShortFilm saveShortFilm(ShortFilm shortFilm);
	ShortFilm editShortFilm(ShortFilm shortFilm);
	void deleteShortFilm(ShortFilm shortFilm);
	/* 短片表 end */
	
	/* 短片评论表start */
	ShortFilmComment saveShortFilmComment(ShortFilmComment shortFilmComment);
	ShortFilmComment editShortFilmComment(ShortFilmComment shortFilmComment);
	void deleteShortFilmComment(ShortFilmComment shortFilmComment);
	/* 短片评论表 end */
	
	/* 卷子表start */
	Paper savePaper(Paper paper);
	Paper editPaper(Paper paper);
	void deletePaper(Paper paper);
	/* 卷子表 end */
	
	/* 答案表start */
	Answer saveAnswer(Answer answer);
	Answer editAnswer(Answer answer);
	void deleteAnswer(Answer answer);
	/* 答案表 end */
	
	/* 审核表start */
	Audit saveAudit(Audit audit);
	Audit editAudit(Audit audit);
	void deleteAudit(Audit audit);
	/* 审核表 end */
	
	
}
